#include <../lib/igloo/igloo.h>
using namespace igloo;

#include "../../Archivos/ArchivoDeEstructurasFijas.h"
#include "../../Entidades/Distrito.h"
using namespace Archivos;
using namespace Entidades;
Context(TestDistrito)
{

	ArchivoDeEstructurasFijas* archivo;
	string path;

	void SetUp() {

		path = "TestDistrito.bin";
		archivo = new ArchivoDeEstructurasFijas(path, 50);
		Distrito* distritoInsertado = new Distrito();
		distritoInsertado->setNombre("sarasa");
		archivo->insertar(distritoInsertado);
		delete distritoInsertado;
	}

	void TearDown() {

		remove(path.c_str());
		delete archivo;
	}

	Spec(TestLeerDistrito) {

		Distrito* distritoLeido = new Distrito();
		archivo->leer(distritoLeido, 0);

		Assert::That(distritoLeido->getNombre(), Is().Containing("sarasa"));
		delete distritoLeido;
	}

	Spec(TestBorrarDistrito) {

		Distrito* distritoBorrado = new Distrito();
		bool borradoExitoso = archivo->borrar(distritoBorrado, 0);
		delete distritoBorrado;

		Distrito* distritoLeido = new Distrito();
		archivo->leer(distritoLeido, 0);

		Assert::That(borradoExitoso, Is().EqualTo(true));
		delete distritoLeido;
	}

};

